package ui.juego.expedientes

import org.uqbar.commons.utils.Observable
import dominio.individuos.Villano
import dominio.datos.Rasgo
import org.uqbar.commons.model.ObservableUtils
import org.uqbar.commons.model.UserException

@Observable
class EditarRasgoVillano {
	
	@Property Villano villano
	@Property Rasgo rasgoSeleccionado
	
	@Property String inputDato 
		
	
	new(Villano villano) {
		this.villano = villano
	}
	
	def getRasgos(){
		villano.rasgos
	}

	def eliminarRasgoSeleccionado() {
		villano.rasgos.remove(rasgoSeleccionado)
		ObservableUtils.firePropertyChanged(this,"rasgos", rasgos)
		ObservableUtils.firePropertyChanged(villano,"rasgos", villano.rasgos)
	}
	
	def agregarRasgo(Rasgo rasgo) {
		rasgo.dato = rasgo.dato.trim
		if(!rasgo.dato.nullOrEmpty) {
			villano.rasgos += rasgo
			inputDato = null
		}
		else throw new UserException("No es un dato valido!")
		ObservableUtils.firePropertyChanged(this, "rasgos", rasgos)
		ObservableUtils.firePropertyChanged(villano, "rasgos", villano.rasgos)
	}
	
}